www.gusucode.com > wxApp PHP版微信小程序CMS系统 v1.0PHP源码程序 > wxApp PHP版微信小程序CMS系统 v1.0/wxAppCMS_v1.0.0/wxAppCMS_v1.0.0/app/files/library/Tencentyun/Http.php
<?php // namespace Tencentyun; class Http { public static $_httpInfo = ''; /** * send http request * @param array $rq http请求信息 * url : 请求的url地址 * method : 请求方法,'get', 'post', 'put', 'delete', 'head' * data : 请求数据,如有设置,则method为post * header : 需要设置的http头部 * host : 请求头部host * timeout : 请求超时时间 * cert : ca文件路径 * ssl_version: SSL版本号 * @return string http请求响应 */ public static function send($rq) { $curlHandle = curl_init(); curl_setopt($curlHandle, CURLOPT_URL, $rq['url']); switch (true) { case isset($rq['method']) && in_array(strtolower($rq['method']), array('get', 'post', 'put', 'delete', 'head')): $method = strtoupper($rq['method']); break; case isset($rq['data']): $method = 'POST'; break; default: $method = 'GET'; } $header = isset($rq['header']) ? $rq['header'] : array(); $header[] = 'Method:'.$method; $header[] = 'User-Agent:'.Conf::getUA(); isset($rq['host']) && $header[] = 'Host:'.$rq['host']; curl_setopt($curlHandle, CURLOPT_HTTPHEADER, $header); curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curlHandle, CURLOPT_CUSTOMREQUEST, $method); if (defined('CURLOPT_SAFE_UPLOAD')) { if (version_compare('5.6',PHP_VERSION,'>=')) { curl_setopt($curlHandle, CURLOPT_SAFE_UPLOAD, false); } } isset($rq['timeout']) && curl_setopt($curlHandle, CURLOPT_TIMEOUT, $rq['timeout']); isset($rq['data']) && in_array($method, array('POST', 'PUT')) && curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $rq['data']); $ssl = substr($rq['url'], 0, 8) == "https://" ? true : false; if( isset($rq['cert'])){ curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER,true); curl_setopt($curlHandle, CURLOPT_CAINFO, $rq['cert']); curl_setopt($curlHandle, CURLOPT_SSL_VERIFYHOST,2); if (isset($rq['ssl_version'])) { curl_setopt($curlHandle, CURLOPT_SSLVERSION, $rq['ssl_version']); } else { curl_setopt($curlHandle, CURLOPT_SSLVERSION, 4); } }else if( $ssl ){ curl_setopt($curlHandle, CURLOPT_SSL_VERIFYPEER,false); //true any ca curl_setopt($curlHandle, CURLOPT_SSL_VERIFYHOST,1); //check only host if (isset($rq['ssl_version'])) { curl_setopt($curlHandle, CURLOPT_SSLVERSION, $rq['ssl_version']); } else { curl_setopt($curlHandle, CURLOPT_SSLVERSION, 4); } } $ret = curl_exec($curlHandle); self::$_httpInfo = curl_getinfo($curlHandle); curl_close($curlHandle); return $ret; } public static function info() { return self::$_httpInfo; } }